/*
 * Huevo.cpp
 *
 *  Created on: 16/10/2012
 *      Author: Ignacio Galvez
 */

#include "Huevo.h"
#include <cmath>
#include <iostream>
#define G 10.0
// #define ALTURA_MAXIMA 600.0;
// #define BORDE_DERECHO 0.0
// #define BORDE_IZQUIERDO 900.0
// #define PISO 0.0
Huevo::Huevo(double anguloDeDisparo,double normaVelocidadInicial
		,double x, double y, double tiempoInicial):
		normaVelocidadInicial(normaVelocidadInicial),
		anguloDeDisparo(anguloDeDisparo), posicionX(x), posicionY(y), 
		xInicial(x), yInicial(y), tiempoInicial(tiempoInicial) {}

double Huevo::getAnguloDeDisparo(){
	return anguloDeDisparo;
}

double Huevo::getPosicionX() {
	return posicionX;
}

double Huevo::getPosicionY() {
	return posicionY;
}

void Huevo::setPosicionX(double x) {
	posicionX = x;
}

void Huevo::setPosicionY(double y) {
	posicionY = y;
}




void Huevo::mover(double ticks) {
	const double ALTURA_MAXIMA = 600;
	const double BORDE_DERECHO = 900;
	const double BORDE_IZQUIERDO = 0;
	const double PISO = 0;

	double x = xInicial + normaVelocidadInicial * cos(anguloDeDisparo) *
	 (ticks - tiempoInicial);
	double y = yInicial + normaVelocidadInicial *	sin(anguloDeDisparo) * 
		(ticks - tiempoInicial) - 0.5 * G * pow((ticks - tiempoInicial), 2);
	if ((x > BORDE_DERECHO)||(x < BORDE_IZQUIERDO)||(y > ALTURA_MAXIMA)||
		(y < PISO))impactar();
	else {
		std::cout << "moviendo huevo x = "<< x << "y = "<< y <<std::endl;
		setPosicionX(x);
		setPosicionY(y);
	}
}



void Huevo::setAnguloDeDisparo(double angulo){
	anguloDeDisparo = angulo;
}



Huevo::~Huevo() {}


